package com.crm.system.service.user;

import com.crm.common.model.DhPageInfo;
import com.crm.model.entity.sys.UserInfo;
import com.crm.model.vo.user.UserInfoVO;

/**
 * @author luojie
 * @date 2021/3/16 13:50
 */
public interface UserInfoService {

    /**
     * 根据userId查询用户信息
     * @param userId 用户id
     * @return
     */
    UserInfo selectUserInfoByPrivateKey(String userId);

    /**
     * 通过userId查询个人信息
     * @param userId 用户id
     * @return
     */
    UserInfoVO getUserInfo(String userId);

    /**
     * 个人信息-保存信息
     * @param userInfo 用户基本信息实体
     * @return
     */
    Boolean saveUserInfo(UserInfo userInfo);

    /**
     * 根据用户id查询用户的下属
     * @param userId 用户id
     * @param onTheJobSituation 在职状态  0在职  1离职
     * @return
     */
    DhPageInfo<UserInfo> subordinateList(Integer pageIndex, Integer pageSize, String sortName, String sortOrder, String userId,String onTheJobSituation);

    /***
     * @Description:插入到用户信息表
     * @Param:
     * @Author: luojie
     * @Date: 2021/5/17 15:59
     */
    Boolean insertUserInfo(UserInfo userInfo);

    /***
     * @Description:更新用户信息
     * @Param: 用户信息
     * @Author: luojie
     * @Date: 2021/5/19 14:37
     */
    Boolean updateUserInfo(UserInfo userInfo);

    /**
     * 通过accountId查询
     * @param accountId
     * @return
     */
    UserInfoVO selectByAccountId(String accountId);
}
